unit FormAcompanhamantoOSUnit;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Datasnap.DBClient, Vcl.Grids,
  Vcl.DBGrids, Vcl.Imaging.pngimage, Vcl.ExtCtrls, Vcl.StdCtrls, JvExDBGrids,
  JvDBGrid, Vcl.Buttons, System.Actions, Vcl.ActnList;


type
  TFormAcompanhamantoOS = class(TForm)
    Panel1: TPanel;
    Label2: TLabel;
    Label3: TLabel;
    ComboBoxMes: TComboBox;
    ComboBoxAno: TComboBox;
    Panel2: TPanel;
    Panel3: TPanel;
    L31: TLabel;
    L30: TLabel;
    L1: TLabel;
    L2: TLabel;
    L3: TLabel;
    L4: TLabel;
    L5: TLabel;
    L6: TLabel;
    L7: TLabel;
    L8: TLabel;
    L9: TLabel;
    L10: TLabel;
    L11: TLabel;
    L12: TLabel;
    L13: TLabel;
    L14: TLabel;
    L15: TLabel;
    L16: TLabel;
    L17: TLabel;
    L18: TLabel;
    L19: TLabel;
    L20: TLabel;
    L21: TLabel;
    L22: TLabel;
    L23: TLabel;
    L24: TLabel;
    L25: TLabel;
    L26: TLabel;
    L27: TLabel;
    L28: TLabel;
    L29: TLabel;
    LabelMES: TLabel;
    Panel4: TPanel;
    Label1: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Panel5: TPanel;
    DBGrid1: TDBGrid;
    BitBtnSalvar: TBitBtn;
    ActionList1: TActionList;
    BitBtnFechar: TBitBtn;
    ActionESC: TAction;
    procedure FormShow(Sender: TObject);
    function VerificaMes(mes : integer) : integer;
    procedure FormCreate(Sender: TObject);
    procedure DBGrid1DrawDataCell(Sender: TObject; const Rect: TRect;
      Field: TField; State: TGridDrawState);
    procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    procedure AtualizaGrid () ;
    procedure ComboBoxMesChange(Sender: TObject);
    function BuscaDiaSemana(data : TDate) : string;
    procedure ComboBoxAnoChange(Sender: TObject);
    procedure OrganizaDiasSemana();
    procedure BitBtnFecharClick(Sender: TObject);
    procedure DBGrid1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);
    procedure BitBtnSalvarClick(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
    aux : String;
    arrayPosicoesW : array[0..30] of string;
  end;

var
  FormAcompanhamantoOS: TFormAcompanhamantoOS;

implementation

{$R *.dfm}

uses DMDadosUnt;

procedure TFormAcompanhamantoOS.AtualizaGrid;
var
I,ultimoDia : Integer;
dtinicio,auxdata : tdate;
mes : string;
begin
  DMDados.cdsAcompanhamentoOSV.Filtered := False;

  if ComboBoxMes.ItemIndex < 9 then
  begin
    DMDados.cdsAcompanhamentoOSV.Filter := 'DATA_REFERENCIA = '+QuotedStr('01/0'+IntToStr( ComboBoxMes.ItemIndex+1)+'/'+ComboBoxAno.Text);
  end
  else
  begin
    DMDados.cdsAcompanhamentoOSV.Filter := 'DATA_REFERENCIA = '+QuotedStr('01/'+IntToStr( ComboBoxMes.ItemIndex+1)+'/'+ComboBoxAno.Text);
  end;

  DMDados.cdsAcompanhamentoOSV.Filtered := TRUE;

  if ComboBoxMes.ItemIndex < 10 then
  begin
    dtinicio := StrToDate( '01/0'+IntToStr(ComboBoxMes.ItemIndex+1)+'/'+ComboBoxAno.Text);
    mes := '0'+IntToStr(ComboBoxMes.ItemIndex+1);
  end
  else
  begin
    dtinicio := StrToDate( '01/'+IntToStr(ComboBoxMes.ItemIndex+1)+'/'+ComboBoxAno.Text);
    mes := IntToStr(ComboBoxMes.ItemIndex+1)
  end;

  auxdata := dtinicio;
//  I := 1;

//  while mes = copy(DateToStr(auxdata),4,2) do
//  begin
//    auxdata := I;
//    inc(I);
//  end;

  ultimoDia := VerificaMes(StrToInt( mes ));

  if ultimoDia = 28 then
  begin
    DMDados.cdsAcompanhamentoOSVStringField29.Visible := False;
    L29.Caption := '   ';
    DMDados.cdsAcompanhamentoOSVStringField30.Visible := False;
    L30.Caption := '   ';
    DMDados.cdsAcompanhamentoOSVStringField31.Visible := False;
    L31.Caption := '   ';
  end;

  if ultimoDia = 30 then
  begin
    DMDados.cdsAcompanhamentoOSVStringField31.Visible := False;
    L31.Caption := '   ';
  end;

  if ultimoDia = 31 then
  begin
    DMDados.cdsAcompanhamentoOSVStringField29.Visible := True;
    DMDados.cdsAcompanhamentoOSVStringField30.Visible := True;
    DMDados.cdsAcompanhamentoOSVStringField31.Visible := True;
  end;


  L1.caption :=BuscaDiaSemana(dtinicio);
  L2.caption :=BuscaDiaSemana(dtinicio+1);
  L3.caption :=BuscaDiaSemana(dtinicio+2);
  L4.caption :=BuscaDiaSemana(dtinicio+3);
  L5.caption :=BuscaDiaSemana(dtinicio+4);
  L6.caption :=BuscaDiaSemana(dtinicio+5);
  L7.caption :=BuscaDiaSemana(dtinicio+6);
  L8.caption :=BuscaDiaSemana(dtinicio+7);
  L9.caption :=BuscaDiaSemana(dtinicio+8);
  L10.caption :=BuscaDiaSemana(dtinicio+9);
  L11.caption :=BuscaDiaSemana(dtinicio+10);
  L12.caption :=BuscaDiaSemana(dtinicio+11);
  L13.caption :=BuscaDiaSemana(dtinicio+12);
  L14.caption :=BuscaDiaSemana(dtinicio+13);
  L15.caption :=BuscaDiaSemana(dtinicio+14);
  L16.caption :=BuscaDiaSemana(dtinicio+15);
  L17.caption :=BuscaDiaSemana(dtinicio+16);
  L18.caption :=BuscaDiaSemana(dtinicio+17);
  L19.caption :=BuscaDiaSemana(dtinicio+18);
  L20.caption :=BuscaDiaSemana(dtinicio+19);
  L21.caption :=BuscaDiaSemana(dtinicio+20);
  L22.caption :=BuscaDiaSemana(dtinicio+21);
  L23.caption :=BuscaDiaSemana(dtinicio+22);
  L24.caption :=BuscaDiaSemana(dtinicio+23);
  L25.caption :=BuscaDiaSemana(dtinicio+24);
  L26.caption :=BuscaDiaSemana(dtinicio+25);
  L27.caption :=BuscaDiaSemana(dtinicio+26);
  L28.caption :=BuscaDiaSemana(dtinicio+27);
  if ultimoDia > 28 then
  begin
    L29.Caption := BuscaDiaSemana(dtinicio+28);
    L30.Caption := BuscaDiaSemana(dtinicio+29);
    if ultimoDia > 30 then
     begin
      L31.Caption := BuscaDiaSemana(dtinicio+30);
     end;
  end;

  OrganizaDiasSemana;

  I := 0;

  L1.left := StrToInt(arrayPosicoesW[I])+6;
  inc(I);
  L2.left := StrToInt(arrayPosicoesW[I])+7;
  inc(I);
  L3.left := StrToInt(arrayPosicoesW[I])+8;
  inc(I);
  L4.left := StrToInt(arrayPosicoesW[I])+9;
  inc(I);
  L5.left := StrToInt(arrayPosicoesW[I])+10;
  inc(I);
  L6.left := StrToInt(arrayPosicoesW[I])+11;
  inc(I);
  L7.left := StrToInt(arrayPosicoesW[I])+12;
  inc(I);
  L8.left := StrToInt(arrayPosicoesW[I])+13;
  inc(I);
  L9.left := StrToInt(arrayPosicoesW[I])+14;
  inc(I);
  L10.left := StrToInt(arrayPosicoesW[I])+15;
  inc(I);
  L11.left := StrToInt(arrayPosicoesW[I])+16;
  inc(I);
  L12.left := StrToInt(arrayPosicoesW[I])+17;
  inc(I);
  L13.left := StrToInt(arrayPosicoesW[I])+18;
  inc(I);
  L14.left := StrToInt(arrayPosicoesW[I])+19;
  inc(I);
  L15.left := StrToInt(arrayPosicoesW[I])+20;
  inc(I);
  L16.left := StrToInt(arrayPosicoesW[I])+21;
  inc(I);
  L17.left := StrToInt(arrayPosicoesW[I])+22;
  inc(I);
  L18.left := StrToInt(arrayPosicoesW[I])+23;
  inc(I);
  L19.left := StrToInt(arrayPosicoesW[I])+24;
  inc(I);
  L20.left := StrToInt(arrayPosicoesW[I])+25;
  inc(I);
  L21.left := StrToInt(arrayPosicoesW[I])+26;
  inc(I);
  L22.left := StrToInt(arrayPosicoesW[I])+27;
  inc(I);
  L23.left := StrToInt(arrayPosicoesW[I])+28;
  inc(I);
  L24.left := StrToInt(arrayPosicoesW[I])+29;
  inc(I);
  L25.left := StrToInt(arrayPosicoesW[I])+30;
  inc(I);
  L26.left := StrToInt(arrayPosicoesW[I])+31;
  inc(I);
  L27.left := StrToInt(arrayPosicoesW[I])+32;
  inc(I);
  L28.left := StrToInt(arrayPosicoesW[I])+33;
  inc(I);
  if ultimoDia > 28 then
  begin
    L29.left :=  StrToInt(arrayPosicoesW[I])+34;
    inc(I);
    L30.left :=  StrToInt(arrayPosicoesW[I])+35;
    inc(I);
    if ultimoDia > 30 then
     begin
      L31.left :=  StrToInt(arrayPosicoesW[I])+36;
      inc(I);
     end;
  end;

end;

procedure TFormAcompanhamantoOS.BitBtnFecharClick(Sender: TObject);
begin
  close;
end;

procedure TFormAcompanhamantoOS.BitBtnSalvarClick(Sender: TObject);
  var
  vList: variant;
begin
  vList := VarArrayCreate([0, 1], varVariant);
  DBGrid1.DataSource.DataSet.DisableControls;

  DBGrid1.DataSource.DataSet.First;

  while not DBGrid1.DataSource.DataSet.Eof do
  begin
  DMDados.cdsAcompanhamentoOS.Open;
  vList[0] := DMDados.cdsAcompanhamentoOSVID_ORDEM_SERVICO_ACOMPANHAMENTO.AsString;
  vList[1] := DMDados.cdsAcompanhamentoOSVDATA_REFERENCIA.AsString;

  DMDados.cdsAcompanhamentoOS.locate('ID_ORDEM_SERVICO_ACOMPANHAMENTO;DATA_REFERENCIA', vList, []);

  DMDados.cdsAcompanhamentoOS.Edit;
  DMDados.cdsAcompanhamentoOSStringField01.AsString := DMDados.cdsAcompanhamentoOSVStringField01.AsString;
  DMDados.cdsAcompanhamentoOSStringField02.AsString := DMDados.cdsAcompanhamentoOSVStringField02.AsString;
  DMDados.cdsAcompanhamentoOSStringField03.AsString := DMDados.cdsAcompanhamentoOSVStringField03.AsString;
  DMDados.cdsAcompanhamentoOSStringField04.asString := DMDados.cdsAcompanhamentoOSVStringField04.asString;
  DMDados.cdsAcompanhamentoOSStringField05.asString := DMDados.cdsAcompanhamentoOSVStringField05.asString;
  DMDados.cdsAcompanhamentoOSStringField06.asString := DMDados.cdsAcompanhamentoOSVStringField06.asString;
  DMDados.cdsAcompanhamentoOSStringField07.asString := DMDados.cdsAcompanhamentoOSVStringField07.asString;
  DMDados.cdsAcompanhamentoOSStringField08.asString := DMDados.cdsAcompanhamentoOSVStringField08.asString;
  DMDados.cdsAcompanhamentoOSStringField09.asString := DMDados.cdsAcompanhamentoOSVStringField09.asString;
  DMDados.cdsAcompanhamentoOSStringField10.asString := DMDados.cdsAcompanhamentoOSVStringField10.asString;
  DMDados.cdsAcompanhamentoOSStringField11.asString := DMDados.cdsAcompanhamentoOSVStringField11.asString;
  DMDados.cdsAcompanhamentoOSStringField12.asString := DMDados.cdsAcompanhamentoOSVStringField12.asString;
  DMDados.cdsAcompanhamentoOSStringField13.asString := DMDados.cdsAcompanhamentoOSVStringField13.asString;
  DMDados.cdsAcompanhamentoOSStringField14.asString := DMDados.cdsAcompanhamentoOSVStringField14.asString;
  DMDados.cdsAcompanhamentoOSStringField15.asString := DMDados.cdsAcompanhamentoOSVStringField15.asString;
  DMDados.cdsAcompanhamentoOSStringField16.asString := DMDados.cdsAcompanhamentoOSVStringField16.asString;
  DMDados.cdsAcompanhamentoOSStringField17.asString := DMDados.cdsAcompanhamentoOSVStringField17.asString;
  DMDados.cdsAcompanhamentoOSStringField18.asString := DMDados.cdsAcompanhamentoOSVStringField18.asString;
  DMDados.cdsAcompanhamentoOSStringField19.asString := DMDados.cdsAcompanhamentoOSVStringField19.asString;
  DMDados.cdsAcompanhamentoOSStringField20.asString := DMDados.cdsAcompanhamentoOSVStringField20.asString;
  DMDados.cdsAcompanhamentoOSStringField21.asString := DMDados.cdsAcompanhamentoOSVStringField21.asString;
  DMDados.cdsAcompanhamentoOSStringField22.asString := DMDados.cdsAcompanhamentoOSVStringField22.asString;
  DMDados.cdsAcompanhamentoOSStringField23.asString := DMDados.cdsAcompanhamentoOSVStringField23.asString;
  DMDados.cdsAcompanhamentoOSStringField24.asString := DMDados.cdsAcompanhamentoOSVStringField24.asString;
  DMDados.cdsAcompanhamentoOSStringField25.asString := DMDados.cdsAcompanhamentoOSVStringField25.asString;
  DMDados.cdsAcompanhamentoOSStringField26.asString := DMDados.cdsAcompanhamentoOSVStringField26.asString;
  DMDados.cdsAcompanhamentoOSStringField27.asString := DMDados.cdsAcompanhamentoOSVStringField27.asString;
  DMDados.cdsAcompanhamentoOSStringField28.asString := DMDados.cdsAcompanhamentoOSVStringField28.asString;
  DMDados.cdsAcompanhamentoOSStringField29.asString := DMDados.cdsAcompanhamentoOSVStringField29.asString;
  DMDados.cdsAcompanhamentoOSStringField30.asString := DMDados.cdsAcompanhamentoOSVStringField30.asString;
  DMDados.cdsAcompanhamentoOSStringField31.asString := DMDados.cdsAcompanhamentoOSVStringField31.asString;

  DMDados.cdsAcompanhamentoOS.Post;
  DBGrid1.DataSource.DataSet.Next;
  end;

  DMDados.cdsAcompanhamentoOS.ApplyUpdates(-1);
  DBGrid1.DataSource.DataSet.First;
  DBGrid1.DataSource.DataSet.EnableControls;


  MessageDlg('Dados atualizados com sucesso',mtInformation,[mbOK],0);
end;

function TFormAcompanhamantoOS.BuscaDiaSemana(data : TDate) : string;
var
X,DiaSemana: String;
begin
 // ShowMessage(FormatDateTime('DD/MM/YYYY', DMDados.cdsAcompanhamentoOSVDATA_INICIO.AsDateTime));
  x :=(FormatDateTime('DDDDDDDDD',data));
  result := copy(UpperCase(x),0,1);
end;

procedure TFormAcompanhamantoOS.ComboBoxAnoChange(Sender: TObject);
var
ultimoDia : Integer;
begin
  AtualizaGrid;


  LabelMES.Caption := ComboBoxMes.Text + ' / ' +ComboBoxAno.Text;
  ultimoDia := VerificaMes(ComboBoxMes.ItemIndex+1);
  if ultimoDia = 28 then
  begin
   labelmes.Margins.Left := 1332;
  end;
  if ultimoDia = 30 then
  begin
   labelmes.Margins.Left := 1378;
  end;
  if ultimoDia = 31 then
  begin
   labelmes.Margins.Left := 1400;
  end;

end;

procedure TFormAcompanhamantoOS.ComboBoxMesChange(Sender: TObject);
var
ultimoDia : integer;
begin
  AtualizaGrid;

  LabelMES.Caption := ComboBoxMes.Text + ' / ' +ComboBoxAno.Text;

  ultimoDia := VerificaMes(ComboBoxMes.ItemIndex+1);
  if ultimoDia = 28 then
  begin
   labelmes.Margins.Left := 1115;
  end;
  if ultimoDia = 30 then
  begin
   labelmes.Margins.Left := 1155;
  end;
  if ultimoDia = 31 then
  begin
   labelmes.Margins.Left := 1175;
  end;
end;


procedure TFormAcompanhamantoOS.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
  var
  I : Integer;
  begin

  if gdSelected in State then
  begin
    DBGrid1.Canvas.Brush.Color:= clHighlight;
  end;
  DBGrid1.DefaultDrawDataCell(Rect,Column.Field,state);

end;

procedure TFormAcompanhamantoOS.DBGrid1DrawDataCell(Sender: TObject;
  const Rect: TRect; Field: TField; State: TGridDrawState);
  var
  arrayDias,arrayMes,arrayAno : array[0..100] of string;
  I : integer;

  begin
  if ((gdSelected in State) and
      (gdFocused in State)) then
    DBGrid1.Canvas.Font.Color := clBlack;


  arrayDias[0] := copy(DateToStr( DMDados.cdsAcompanhamentoOSVDATA_INICIO.AsDateTime),0,2);
  arrayMes[0]  := copy(DateToStr( DMDados.cdsAcompanhamentoOSVDATA_INICIO.AsDateTime+I),4,2);
  arrayAno[0]  := copy(DateToStr( DMDados.cdsAcompanhamentoOSVDATA_INICIO.AsDateTime+I),7,4);

  for I := 1 to DMDados.cdsAcompanhamentoOSVDURACAO.AsInteger-1 do
  begin
    arrayDias[I] := copy(DateToStr( DMDados.cdsAcompanhamentoOSVDATA_INICIO.AsDateTime+I),0,2);
    arrayMes[I]  := copy(DateToStr( DMDados.cdsAcompanhamentoOSVDATA_INICIO.AsDateTime+I),4,2);
    arrayAno[I]  := copy(DateToStr( DMDados.cdsAcompanhamentoOSVDATA_INICIO.AsDateTime+I),7,4);
  end;

  for I := 0 to DMDados.cdsAcompanhamentoOSVDURACAO.AsInteger-1 do
  begin
  if (Field.FieldName = arrayDias[I] ) and
     (arrayMes[I] = copy(DMDados.cdsAcompanhamentoOSVDATA_REFERENCIA.AsString,4,2)) and
     (arrayAno[I] = copy(DMDados.cdsAcompanhamentoOSVDATA_REFERENCIA.AsString,7,4))
  then
  begin
    DBGrid1.Canvas.Brush.Color := $009900;
    DBGrid1.DefaultDrawDataCell(Rect, Field, State);

  end
  else
  begin

  end;
  end;

end;

procedure TFormAcompanhamantoOS.DBGrid1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
var
nomeColuna : string;
I : integer;
begin

 nomeColuna := DBGrid1.Columns[DBGrid1.SelectedIndex].FieldName;

{ if key = 65 then // A
 begin
   DMDados.cdsAcompanhamentoOSV.Edit;
   DMDados.cdsAcompanhamentoOSV.FieldByName(nomeColuna).AsString := 'A';
 //  key := 9;
//   DMDados.dsAcompanhamentoOSV.DataSet.Next;
//   DMDados.dsAcompanhamentoOSV.DataSet.Prior;
 end
 else
 if key = 73 then //I
 begin
   DMDados.cdsAcompanhamentoOSV.Edit;
   DMDados.cdsAcompanhamentoOSV.FieldByName(nomeColuna).AsString := 'I';
 //  key := 9;
 //  DMDados.dsAcompanhamentoOSV.DataSet.Next;
//   DMDados.dsAcompanhamentoOSV.DataSet.Prior;
 end
 else
 if key = 70 then //F
 begin
   DMDados.cdsAcompanhamentoOSV.Edit;
   DMDados.cdsAcompanhamentoOSV.FieldByName(nomeColuna).AsString := 'F';
   key := 9;
   DMDados.dsAcompanhamentoOSV.DataSet.Next;
   DMDados.dsAcompanhamentoOSV.DataSet.Prior;
 end
 else
 if key = 78 then //N
 begin
   DMDados.cdsAcompanhamentoOSV.Edit;
   DMDados.cdsAcompanhamentoOSV.FieldByName(nomeColuna).AsString := 'N';
   key := 9;
   DMDados.dsAcompanhamentoOSV.DataSet.Next;
   DMDados.dsAcompanhamentoOSV.DataSet.Prior;
 end
 else
 begin
   key := 0;
 end;
    }

 if key = VK_DOWN then
 begin
   key := 0;
   DMDados.dsAcompanhamentoOSV.DataSet.Next;
 end
 else
 if key = VK_UP then
 begin
   key := 0;
   DMDados.dsAcompanhamentoOSV.DataSet.Prior;
 end;

end;

procedure TFormAcompanhamantoOS.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
   Key := AnsiUpperCase(Key)[Length(Key)];

   if key = #73 then //'I'
   begin
     key := #73;
   end
   else
   if key = #69 then  //E
   begin
     key := #69;
   end
   else
   if key = #84 then  //T
   begin
     key := #84;
   end
   else
   if key = #13 then  //enter
   begin
     key := #13;
   end
   else
   if key = #37 then  //left
   begin
     key := #37;
   end
   else
   if key = #39 then  //rigth
   begin
     key := #39;
   end
   else
   if key = #8 then  //backspace
   begin
     key := #8;
   end
   else
   begin
     key := #0;
   end;
end;

procedure TFormAcompanhamantoOS.FormCreate(Sender: TObject);
begin
  aux := '0';


  DMDados.cdsAcompanhamentoOSV.Open;
end;

procedure TFormAcompanhamantoOS.FormShow(Sender: TObject);
var
diameio : string;
begin
  DMDados.cdsAcompanhamentoOSV.Close;
  DMDados.cdsAcompanhamentoOSV.Open;
  DMDados.cdsAcompanhamentoOS.Close;
  DMDados.cdsAcompanhamentoOS.Open;

  diameio := copy(DateToStr(date),0,2);

 ComboBoxMes.ItemIndex := StrToInt(copy(DateToStr(date),4,2))-1;


 // OrganizaGrid(diameio);
 AtualizaGrid;

 ComboBoxMesChange(self);

end;

procedure TFormAcompanhamantoOS.OrganizaDiasSemana;
var
i,j,aux, indice : Integer;

begin
aux := 0;
indice  := 0;
i:=0;

for i := 0 to DBGrid1.Columns.Count - 1 do
begin

 indice := indice + DBGrid1.Columns.Items[i].Width;

 for j := 1 to 31 do
 begin


    if j < 10 then
    begin
      if '0'+IntToStr(j) = DBGrid1.Columns.Items[i].FieldName then
      begin
        arrayPosicoesW[j-1] := inttostr( indice );
      end;
    end
    else
    begin
      if IntToStr(j) = DBGrid1.Columns.Items[i].FieldName then
      begin
        arrayPosicoesW[j-1] := inttostr( indice );
      end;
    end;
 end;
end;

end;

function TFormAcompanhamantoOS.VerificaMes(mes: integer): integer;
begin
  case mes of
  1:
  begin
    result := 31;
  end;
  2:
  begin
    result := 28;
  end;
  3:
  begin
    result := 31;
  end;
  4:
  begin
    result := 30;
  end;
  5:
  begin
    result := 31;
  end;
  6:
  begin
    result := 30;
  end;
  7:
  begin
    result := 31;
  end;
  8:
  begin
    result := 31;
  end;
  9:
  begin
    result := 30;
  end;
  10:
  begin
    result := 31;
  end;
  11:
  begin
    result := 30;
  end;
  12:
  begin
    result := 31;
  end;
  end;
end;

end.
